tink_module(signature)

add_subdirectory(internal)

tink_cc_library(
  NAME public_key_verify_wrapper
  SRCS
    public_key_verify_wrapper.cc
    public_key_verify_wrapper.h
  DEPS
    absl::status
    absl::strings
    tink::core::crypto_format
    tink::core::primitive_set
    tink::core::primitive_wrapper
    tink::core::public_key_verify
    tink::internal::monitoring_util
    tink::internal::registry_impl
    tink::internal::util
    tink::monitoring::monitoring
    tink::util::status
    tink::util::statusor
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME public_key_verify_factory
  SRCS
    public_key_verify_factory.cc
    public_key_verify_factory.h
  DEPS
    tink::signature::public_key_verify_wrapper
    absl::core_headers
    tink::core::key_manager
    tink::core::keyset_handle
    tink::core::public_key_verify
    tink::core::registry
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME public_key_sign_wrapper
  SRCS
    public_key_sign_wrapper.cc
    public_key_sign_wrapper.h
  DEPS
    absl::status
    absl::strings
    tink::core::crypto_format
    tink::core::primitive_set
    tink::core::primitive_wrapper
    tink::core::public_key_sign
    tink::internal::monitoring_util
    tink::internal::registry_impl
    tink::internal::util
    tink::monitoring::monitoring
    tink::util::statusor
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME public_key_sign_factory
  SRCS
    public_key_sign_factory.cc
    public_key_sign_factory.h
  DEPS
    tink::signature::public_key_sign_wrapper
    absl::core_headers
    tink::core::key_manager
    tink::core::keyset_handle
    tink::core::public_key_sign
    tink::core::registry
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME signature_key_templates
  SRCS
    signature_key_templates.cc
    signature_key_templates.h
  DEPS
    absl::core_headers
    absl::memory
    absl::strings
    crypto
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::constants
    tink::proto::common_cc_proto
    tink::proto::ecdsa_cc_proto
    tink::proto::ed25519_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME ecdsa_sign_key_manager
  SRCS
    ecdsa_sign_key_manager.cc
    ecdsa_sign_key_manager.h
  DEPS
    tink::signature::ecdsa_verify_key_manager
    absl::memory
    absl::status
    absl::strings
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::config::tink_fips
    tink::internal::ec_util
    tink::subtle::ecdsa_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::input_stream_util
    tink::util::protobuf_helper
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::ecdsa_cc_proto
)

tink_cc_library(
  NAME ecdsa_verify_key_manager
  SRCS
    ecdsa_verify_key_manager.cc
    ecdsa_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::strings
    tink::core::key_type_manager
    tink::core::public_key_verify
    tink::internal::ec_util
    tink::subtle::ecdsa_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::ecdsa_cc_proto
)

tink_cc_library(
  NAME ed25519_sign_key_manager
  SRCS
    ed25519_sign_key_manager.cc
    ed25519_sign_key_manager.h
  DEPS
    tink::signature::ed25519_verify_key_manager
    absl::memory
    absl::status
    absl::strings
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::internal::ec_util
    tink::subtle::ed25519_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::input_stream_util
    tink::util::protobuf_helper
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::ed25519_cc_proto
)

tink_cc_library(
  NAME ed25519_verify_key_manager
  SRCS
    ed25519_verify_key_manager.cc
    ed25519_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::strings
    tink::core::key_type_manager
    tink::core::public_key_verify
    tink::subtle::ed25519_verify_boringssl
    tink::util::constants
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::ed25519_cc_proto
)

tink_cc_library(
  NAME sig_util
  SRCS
    sig_util.cc
    sig_util.h
  DEPS
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::status
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_sign_key_manager
  SRCS
    rsa_ssa_pkcs1_sign_key_manager.cc
    rsa_ssa_pkcs1_sign_key_manager.h
  DEPS
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    tink::signature::sig_util
    absl::memory
    absl::status
    absl::strings
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pkcs1_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::rsa_ssa_pkcs1_cc_proto
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_verify_key_manager
  SRCS
    rsa_ssa_pkcs1_verify_key_manager.cc
    rsa_ssa_pkcs1_verify_key_manager.h
  DEPS
    absl::memory
    absl::strings
    crypto
    tink::core::key_type_manager
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::md_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::rsa_ssa_pkcs1_cc_proto
)

tink_cc_library(
  NAME rsa_ssa_pss_sign_key_manager
  SRCS
    rsa_ssa_pss_sign_key_manager.cc
    rsa_ssa_pss_sign_key_manager.h
  DEPS
    tink::signature::rsa_ssa_pss_verify_key_manager
    tink::signature::sig_util
    absl::memory
    absl::status
    absl::strings
    tink::core::key_type_manager
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pss_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME rsa_ssa_pss_verify_key_manager
  SRCS
    rsa_ssa_pss_verify_key_manager.cc
    rsa_ssa_pss_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::strings
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::md_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pss_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME signature_config
  SRCS
    signature_config.cc
    signature_config.h
  DEPS
    tink::signature::ecdsa_verify_key_manager
    tink::signature::ed25519_sign_key_manager
    tink::signature::ed25519_verify_key_manager
    tink::signature::public_key_sign_wrapper
    tink::signature::public_key_verify_wrapper
    tink::signature::rsa_ssa_pkcs1_proto_serialization
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    tink::signature::rsa_ssa_pss_proto_serialization
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    absl::core_headers
    absl::memory
    tink::core::registry
    tink::config::config_util
    tink::config::tink_fips
    tink::util::status
    tink::signature::ecdsa_sign_key_manager
    tink::proto::config_cc_proto
)

tink_cc_library(
  NAME signature_pem_keyset_reader
  SRCS
    signature_pem_keyset_reader.cc
    signature_pem_keyset_reader.h
  DEPS
    tink::signature::ecdsa_verify_key_manager
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    absl::memory
    absl::status
    absl::strings
    tink::core::keyset_reader
    tink::internal::ec_util
    tink::internal::rsa_util
    tink::subtle::pem_parser_boringssl
    tink::util::enums
    tink::util::keyset_util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::proto::common_cc_proto
    tink::proto::ecdsa_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME failing_signature
  SRCS
    failing_signature.cc
    failing_signature.h
  DEPS
    absl::strings
    tink::core::public_key_sign
    tink::core::public_key_verify
)

tink_cc_library(
  NAME signature_parameters
  SRCS
    signature_parameters.h
  DEPS
    tink::core::parameters
)

tink_cc_library(
  NAME signature_public_key
  SRCS
    signature_public_key.h
  DEPS
    tink::signature::signature_parameters
    absl::strings
    tink::core::key
)

tink_cc_library(
  NAME signature_private_key
  SRCS
    signature_private_key.h
  DEPS
    tink::signature::signature_parameters
    tink::signature::signature_public_key
    absl::strings
    tink::core::key
    tink::core::private_key
)

tink_cc_library(
  NAME ed25519_parameters
  SRCS
    ed25519_parameters.cc
    ed25519_parameters.h
  DEPS
    tink::signature::signature_parameters
    tink::util::statusor
)

tink_cc_library(
  NAME ed25519_public_key
  SRCS
    ed25519_public_key.cc
    ed25519_public_key.h
  DEPS
    tink::signature::ed25519_parameters
    tink::signature::signature_public_key
    absl::core_headers
    absl::strings
    absl::optional
    tink::core::partial_key_access_token
    tink::subtle::subtle_util
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME ed25519_private_key
  SRCS
    ed25519_private_key.cc
    ed25519_private_key.h
  DEPS
    tink::signature::ed25519_public_key
    tink::signature::signature_private_key
    crypto
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access_token
    tink::core::restricted_data
    tink::internal::ec_util
    tink::util::secret_data
    tink::util::statusor
)

tink_cc_library(
  NAME ed25519_proto_serialization
  SRCS
    ed25519_proto_serialization.cc
    ed25519_proto_serialization.h
  DEPS
    tink::signature::ed25519_parameters
    tink::signature::ed25519_private_key
    tink::signature::ed25519_public_key
    absl::status
    absl::strings
    absl::optional
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_key_access_token
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::util::status
    tink::util::statusor
    tink::proto::ed25519_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_parameters
  SRCS
    rsa_ssa_pkcs1_parameters.cc
    rsa_ssa_pkcs1_parameters.h
  DEPS
    tink::signature::signature_parameters
    absl::status
    absl::strings
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::parameters
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_public_key
  SRCS
    rsa_ssa_pkcs1_public_key.cc
    rsa_ssa_pkcs1_public_key.h
  DEPS
    tink::signature::rsa_ssa_pkcs1_parameters
    tink::signature::signature_public_key
    absl::core_headers
    absl::status
    absl::strings
    absl::str_format
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::key
    tink::core::partial_key_access_token
    tink::subtle::subtle_util
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_private_key
  SRCS
    rsa_ssa_pkcs1_private_key.cc
    rsa_ssa_pkcs1_private_key.h
  DEPS
    tink::signature::rsa_ssa_pkcs1_public_key
    tink::signature::signature_private_key
    absl::status
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::partial_key_access_token
    tink::core::restricted_big_integer
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME config_v0
  SRCS
    config_v0.cc
    config_v0.h
  DEPS
    absl::check
    tink::core::configuration
    tink::signature::internal::config_v0
)

tink_cc_library(
  NAME key_gen_config_v0
  SRCS
    key_gen_config_v0.cc
    key_gen_config_v0.h
  DEPS
    absl::check
    tink::core::key_gen_configuration
    tink::signature::internal::key_gen_config_v0
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_proto_serialization
  SRCS
    rsa_ssa_pkcs1_proto_serialization.cc
    rsa_ssa_pkcs1_proto_serialization.h
  DEPS
    tink::signature::rsa_ssa_pkcs1_parameters
    tink::signature::rsa_ssa_pkcs1_private_key
    tink::signature::rsa_ssa_pkcs1_public_key
    absl::core_headers
    absl::status
    absl::string_view
    absl::optional
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::core::secret_key_access_token
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::util::status
    tink::util::statusor
    tink::proto::common_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME rsa_ssa_pss_parameters
  SRCS
    rsa_ssa_pss_parameters.cc
    rsa_ssa_pss_parameters.h
  DEPS
    tink::signature::signature_parameters
    absl::status
    absl::strings
    absl::string_view
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::parameters
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME rsa_ssa_pss_public_key
  SRCS
    rsa_ssa_pss_public_key.cc
    rsa_ssa_pss_public_key.h
  DEPS
    tink::signature::rsa_ssa_pss_parameters
    tink::signature::signature_public_key
    absl::core_headers
    absl::status
    absl::strings
    absl::str_format
    absl::string_view
    absl::optional
    tink::core::big_integer
    tink::core::key
    tink::core::partial_key_access_token
    tink::subtle::subtle_util
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME rsa_ssa_pss_private_key
  SRCS
    rsa_ssa_pss_private_key.cc
    rsa_ssa_pss_private_key.h
  DEPS
    tink::signature::rsa_ssa_pss_public_key
    tink::signature::signature_private_key
    absl::status
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::partial_key_access_token
    tink::core::restricted_big_integer
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME rsa_ssa_pss_proto_serialization
  SRCS
    rsa_ssa_pss_proto_serialization.cc
    rsa_ssa_pss_proto_serialization.h
  DEPS
    tink::signature::rsa_ssa_pss_parameters
    tink::signature::rsa_ssa_pss_private_key
    tink::signature::rsa_ssa_pss_public_key
    absl::core_headers
    absl::status
    absl::string_view
    absl::optional
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::core::secret_key_access_token
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::util::status
    tink::util::statusor
    tink::proto::common_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

# tests

tink_cc_test(
  NAME public_key_verify_wrapper_test
  SRCS
    public_key_verify_wrapper_test.cc
  DEPS
    tink::signature::failing_signature
    tink::signature::public_key_verify_wrapper
    gmock
    tink::core::primitive_set
    tink::core::public_key_verify
    tink::internal::registry_impl
    tink::monitoring::monitoring
    tink::monitoring::monitoring_client_mocks
    tink::util::status
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME public_key_verify_factory_test
  SRCS
    public_key_verify_factory_test.cc
  DEPS
    tink::signature::ecdsa_verify_key_manager
    tink::signature::public_key_verify_factory
    tink::signature::signature_config
    gmock
    tink::core::crypto_format
    tink::core::keyset_handle
    tink::core::public_key_verify
    tink::core::registry
    tink::util::status
    tink::util::test_keyset_handle
    tink::util::test_util
    tink::proto::ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME public_key_sign_wrapper_test
  SRCS
    public_key_sign_wrapper_test.cc
  DEPS
    tink::signature::failing_signature
    tink::signature::public_key_sign_wrapper
    gmock
    absl::memory
    absl::status
    tink::core::crypto_format
    tink::core::primitive_set
    tink::core::public_key_sign
    tink::internal::registry_impl
    tink::monitoring::monitoring
    tink::monitoring::monitoring_client_mocks
    tink::util::status
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME public_key_sign_factory_test
  SRCS
    public_key_sign_factory_test.cc
  DEPS
    tink::signature::ecdsa_sign_key_manager
    tink::signature::public_key_sign_factory
    tink::signature::signature_config
    gmock
    tink::core::crypto_format
    tink::core::keyset_handle
    tink::core::public_key_sign
    tink::core::registry
    tink::util::status
    tink::util::test_keyset_handle
    tink::util::test_util
    tink::proto::ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME ecdsa_verify_key_manager_test
  SRCS
    ecdsa_verify_key_manager_test.cc
  DEPS
    tink::signature::ecdsa_sign_key_manager
    tink::signature::ecdsa_verify_key_manager
    gmock
    absl::status
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::ec_util
    tink::subtle::ecdsa_sign_boringssl
    tink::util::enums
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ecdsa_cc_proto
)

tink_cc_test(
  NAME ed25519_verify_key_manager_test
  SRCS
    ed25519_verify_key_manager_test.cc
  DEPS
    tink::signature::ed25519_sign_key_manager
    tink::signature::ed25519_verify_key_manager
    gmock
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::core::registry
    tink::subtle::ed25519_sign_boringssl
    tink::util::enums
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ed25519_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_verify_key_manager_test
  SRCS
    rsa_ssa_pkcs1_verify_key_manager_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    gmock
    absl::status
    absl::strings
    crypto
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pkcs1_sign_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pss_verify_key_manager_test
  SRCS
    rsa_ssa_pss_verify_key_manager_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    gmock
    absl::status
    absl::strings
    crypto
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pss_sign_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::rsa_ssa_pss_cc_proto
)

tink_cc_test(
  NAME ecdsa_sign_key_manager_test
  SRCS
    ecdsa_sign_key_manager_test.cc
  DEPS
    tink::signature::ecdsa_sign_key_manager
    tink::signature::ecdsa_verify_key_manager
    gmock
    absl::status
    absl::strings
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::ec_util
    tink::internal::ssl_util
    tink::subtle::ecdsa_verify_boringssl
    tink::util::enums
    tink::util::istream_input_stream
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ecdsa_cc_proto
)

tink_cc_test(
  NAME ed25519_sign_key_manager_test
  SRCS
    ed25519_sign_key_manager_test.cc
  DEPS
    tink::signature::ed25519_sign_key_manager
    tink::signature::ed25519_verify_key_manager
    gmock
    absl::flat_hash_set
    absl::status
    tink::core::public_key_sign
    tink::core::registry
    tink::subtle::ed25519_verify_boringssl
    tink::util::enums
    tink::util::istream_input_stream
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ed25519_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_sign_key_manager_test
  SRCS
    rsa_ssa_pkcs1_sign_key_manager_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    gmock
    absl::flat_hash_set
    crypto
    tink::core::public_key_sign
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pss_sign_key_manager_test
  SRCS
    rsa_ssa_pss_sign_key_manager_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    tink::signature::signature_key_templates
    gmock
    absl::flat_hash_set
    crypto
    tink::core::public_key_sign
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pss_verify_boringssl
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::rsa_ssa_pss_cc_proto
)

tink_cc_test(
  NAME signature_config_test
  SRCS
    signature_config_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_parameters
    tink::signature::rsa_ssa_pkcs1_private_key
    tink::signature::rsa_ssa_pkcs1_public_key
    tink::signature::rsa_ssa_pss_parameters
    tink::signature::rsa_ssa_pss_private_key
    tink::signature::rsa_ssa_pss_public_key
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    tink::signature::signature_config
    tink::signature::signature_key_templates
    gmock
    absl::check
    absl::memory
    absl::status
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::keyset_handle
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::core::registry
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::internal::bn_util
    tink::internal::fips_utils
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::ssl_unique_ptr
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::common_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME signature_key_templates_test
  SRCS
    signature_key_templates_test.cc
  DEPS
    tink::signature::ecdsa_sign_key_manager
    tink::signature::ecdsa_verify_key_manager
    tink::signature::ed25519_sign_key_manager
    tink::signature::ed25519_verify_key_manager
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::signature_key_templates
    gmock
    crypto
    tink::core::key_manager_impl
    tink::core::private_key_manager_impl
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::ecdsa_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME signature_pem_keyset_reader_test
  SRCS
    signature_pem_keyset_reader_test.cc
  DEPS
    tink::signature::ecdsa_verify_key_manager
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    tink::signature::signature_config
    tink::signature::signature_pem_keyset_reader
    gmock
    absl::status
    absl::strings
    tink::core::cc
    tink::internal::rsa_util
    tink::internal::ssl_util
    tink::subtle::pem_parser_boringssl
    tink::util::enums
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::ecdsa_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME failing_signature_test
  SRCS
    failing_signature_test.cc
  DEPS
    tink::signature::failing_signature
    gmock
    absl::status
    tink::util::test_matchers
)

tink_cc_test(
  NAME ed25519_parameters_test
  SRCS
    ed25519_parameters_test.cc
  DEPS
    tink::signature::ed25519_parameters
    gmock
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME ed25519_public_key_test
  SRCS
    ed25519_public_key_test.cc
  DEPS
    tink::signature::ed25519_public_key
    gmock
    tink::core::partial_key_access
    tink::subtle::random
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME ed25519_private_key_test
  SRCS
    ed25519_private_key_test.cc
  DEPS
    tink::signature::ed25519_private_key
    tink::signature::ed25519_public_key
    gmock
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::internal::ec_util
    tink::subtle::random
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME ed25519_proto_serialization_test
  SRCS
    ed25519_proto_serialization_test.cc
  DEPS
    tink::signature::ed25519_parameters
    tink::signature::ed25519_private_key
    tink::signature::ed25519_proto_serialization
    tink::signature::ed25519_public_key
    gmock
    absl::status
    absl::optional
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::internal::ec_util
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::subtle::random
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::ed25519_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_parameters_test
  SRCS
    rsa_ssa_pkcs1_parameters_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_parameters
    gmock
    absl::status
    crypto
    tink::core::big_integer
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_public_key_test
  SRCS
    rsa_ssa_pkcs1_public_key_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_parameters
    tink::signature::rsa_ssa_pkcs1_public_key
    gmock
    absl::status
    absl::strings
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::partial_key_access
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_private_key_test
  SRCS
    rsa_ssa_pkcs1_private_key_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_parameters
    tink::signature::rsa_ssa_pkcs1_private_key
    tink::signature::rsa_ssa_pkcs1_public_key
    gmock
    absl::check
    absl::status
    absl::strings
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME config_v0_test
  SRCS
    config_v0_test.cc
  DEPS
    tink::signature::config_v0
    tink::signature::key_gen_config_v0
    tink::signature::signature_key_templates
    gmock
    tink::core::keyset_handle
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_proto_serialization_test
  SRCS
    rsa_ssa_pkcs1_proto_serialization_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_parameters
    tink::signature::rsa_ssa_pkcs1_private_key
    tink::signature::rsa_ssa_pkcs1_proto_serialization
    tink::signature::rsa_ssa_pkcs1_public_key
    gmock
    absl::check
    absl::status
    absl::string_view
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::internal::bn_util
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::ssl_unique_ptr
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pss_parameters_test
  SRCS
    rsa_ssa_pss_parameters_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_parameters
    gmock
    absl::status
    crypto
    tink::core::big_integer
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME rsa_ssa_pss_public_key_test
  SRCS
    rsa_ssa_pss_public_key_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_parameters
    tink::signature::rsa_ssa_pss_public_key
    gmock
    absl::status
    absl::strings
    absl::string_view
    absl::optional
    tink::core::big_integer
    tink::core::partial_key_access
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME rsa_ssa_pss_private_key_test
  SRCS
    rsa_ssa_pss_private_key_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_parameters
    tink::signature::rsa_ssa_pss_private_key
    tink::signature::rsa_ssa_pss_public_key
    gmock
    absl::check
    absl::status
    absl::strings
    absl::string_view
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME rsa_ssa_pss_proto_serialization_test
  SRCS
    rsa_ssa_pss_proto_serialization_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_parameters
    tink::signature::rsa_ssa_pss_private_key
    tink::signature::rsa_ssa_pss_proto_serialization
    tink::signature::rsa_ssa_pss_public_key
    gmock
    absl::check
    absl::status
    absl::string_view
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::internal::bn_util
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::ssl_unique_ptr
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)
